[OpenGL ES 2.0]glBlendFunc glBlendFuncSeparate 옵션에 관하여. :: OPEN GL ES[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

OPEN GL ES
[1]
등록일:2018-06-25 20:37:11 (0%)
작성자:
제목:[OpenGL ES 2.0]glBlendFunc glBlendFuncSeparate 옵션에 관하여.

FBO를 주로 쓰고 이것을 겹쳐서 랜더링 할때 보면 한참 BlendFunction을 보게 된다.

상당히 중요하다. :D 

 

보통 투명한 걸 그리고자 할때는 

 

glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

 

이렇게 표현을 많이 한다. 

이게 무슨 뜻이냐면 내가 지금 그리고자 하는것을 SRC라 보고 이미 그려져 있는걸 DST라 칭해서

 

SRC RGBA는 SRC Alpha에 의해 칠해지고, DST RGBA는 (1 - SRC Alpha) 로 칠하겠다~ 라는 거다. 당연한거다!

 

옵션으로 쓸수 있는건 대충 아래와 같다

GL_ZERO,                                               : 그냥 의미 그대로 0, 

GL_ONE,                                                 : 있는 그대로 그림

GL_SRC_COLOR,                                     : SRC Color비율 대로 칠함

GL_ONE_MINUS_SRC_COLOR,                   : 1.0 - (SRC Color) 비율대로 칠함

GL_DST_COLOR,                                      : 칠해져 있는 Color 비율에 의해 결정

GL_ONE_MINUS_DST_COLOR,                   : 1.0 - DST COLOR

GL_SRC_ALPHA,                                       : 일반적인 SRC Blending 옵션, 소스의 알파 비율대로 색,알파 결정

GL_ONE_MINUS_SRC_ALPHA,                     : 일반적인 DST Blending 옵션, 1.0 - 소스의 알파 비율대로 색, 알파 결정

GL_DST_ALPHA, 

GL_ONE_MINUS_DST_ALPHA, 

GL_CONSTANT_COLOR,                             : 이건 glBlendColor로 설정한 Constant값에 의해 결정

GL_ONE_MINUS_CONSTANT_COLOR,          : 1.0 - constant

GL_CONSTANT_ALPHA, 

GL_ONE_MINUS_CONSTANT_ALPHA, 

GL_SRC_ALPHA_SATURATE                          : Saturate 한 값 , 클램핑이라 생각하면됨!

 

이걸 왜 제대로 알아야 하는가 하면. FBO를 통해 뭔가를 그려내고 그것을 다른 FBO위에 덮어 쓰고 하는 식의 프로그램에서는 

상당히 중요 할 수 있다! 눈에 보이는값과 저장되는 값이 다를 수 있기 때문이다.

 

흠흠. 그리고 그... RGBA 채널에 어떤 Data를 가공하여 다음 Shader로 넘겨 줄때도, Alpha 채널에 의해 RGB 값을 어떤식으로 가공? 

할건지때도 필요하다.

만약에 RGB 랑 Alpha에 대해 다른 블랜딩 펑션을 주고 싶을 땐

void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);

 함수를 쓰면 된다.

http://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendFuncSeparate.xml

위 사이트 가보면 알겠지만 RGB Factor 와 Alpha Factor가 분리 되어 있다.

 

오.. 좋다. 처음에 이거 몰라서 한참 해맨기억이 있어서. 흠흠..

 

아무튼 열코딩!

 

아래껀 구글 이미지 퍼옮

 


[본문링크] [OpenGL ES 2.0]glBlendFunc glBlendFuncSeparate 옵션에 관하여.
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34670
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.